In the past, when several independent processors shared a system bus, the efficiency by which information could be transferred by a sending processor to a target processor was determined by the availability of the target processor at the time the sending processor sought to send the information. If the target processor were made to be responsive to an interrupt signal from a sending processor, such that the target processor would be required to halt its current processing to receive the information from the sending processor, the efficiency of the target processor would also be reduced.
Frequently, in existing systems, a status register is used which is associated with each processor and which indicates to any sending processors whether the particular target processor is free to receive information. A sending processor would thus poll the status register to determine whether it can send information thereto. There are three fundamental deficiencies with this technique, however. The first is that, between the time a processor finds a target processor ready and the time it actually sends a message or data, still another processor might start communicating with the target processor, because it too found the target processor free and was able to start sending its messages ahead of the first processor. The consequence of this is a collision resulting in garbled data to the target processor. The garbled data is caused by receipt by the target processor of messages from two different processors in a disorderly fashion. A second deficiency is that the requirement that a status register be polled before information can be transmitted reduces the communication bandwidth between processors. This is because in order to communicate, a request for status and a return of status cycle would be required for each communication.
A third deficiency is that, during the status register polling process, the sending processor is not able to procede with processing of other tasks. Therefore, time spent in polling a status register is essentially wasted time which results in a net loss of system processing power.